function boe = dips_duur_type_alle_fouten(begin,einde)

%bepaal uit de data van lijnfout_14.m en busfout_14.m waar er welke dips en onderbrekingnen hoelang voorkomen
%clear all
load lijnfout;
tijd_begin_dip = 10; %testje -> nog aanpassen (zo goot want anders loopt lus vast;))
tijd_eind_dip = 0;
diepte_dip = 1;
%k=1;
check_dip = 0;
teller = 0;

%format: lijnfout bus_dip duur max_diepte begin eind 
dips_overzicht = ones(1000,7);
aantal_dips = 0;
eind = 0;

%laten lopen over alle lijnfouten
for kk = begin:einde

%lopen over alle bussen (tot 14 want laatste bus is de extra bus en veroorzaakt de fout dus
%dip nutteloos om op te slaan
for k = 1:14
eind = 0;
check_dip = 0;
    
for t = 1:160 % grens op 160???? %size(tijd,1)
    
if (alle_spanningen(t+200*teller,k)<0.9) && (alle_spanningen(t+200*teller,k)>0.1) && (check_dip == 0)
    
    tijd_begin_dip = tijd(t,kk);
    t1 = t;
    %diepte_dip = alle_spanningen(t+200*teller,k);
    aantal_dips = aantal_dips + 1;
    %dips_overzicht(aantal_dips,4) = diepte_dip;
    dips_overzicht(aantal_dips,5) = tijd_begin_dip;
    dips_overzicht(aantal_dips,1) = kk;
    dips_overzicht(aantal_dips,2) = k;
    check_dip = 1;
    
end

if (check_dip == 1) && (alle_spanningen(t+200*teller,k)>=0.9) && (eind == 0)
    
     tijd_eind_dip = tijd(t,kk);
     dips_overzicht(aantal_dips,6) = tijd_eind_dip;
     dips_overzicht(aantal_dips,3) = dips_overzicht(aantal_dips,6)-dips_overzicht(aantal_dips,5);
     eind = 1;
     
end

if eind == 1
    diepte_dip = min(alle_spanningen(t1+200*teller:t+200*teller,k));
    dips_overzicht(aantal_dips,4) = diepte_dip;
end

end


%%%%%%%%%%
%TIJDELIJK
%%%%%%%%%%

%als de spanning niet terug hersteld kan worden krijgt de dipduur de waarde
%1234. Hierop kan Bjorn zoeken. (1234 is een waarde die nooit bekomen
%wordt vermits er 20 sec gesimuleerd wordt...)
if check_dip == 1 && eind == 0
    dips_overzicht(aantal_dips,3) = 1234;    
end

end
    teller = teller + 1;
end


IEEE_14_bus_original;
aantal_bussen = size(Bus.con,1);
%hangt er een belasting aan de bus met dip?
dips_bussen_belasting = zeros(1000,7);
aantal_dips = 0;
teller = 1;
for k=1:size(dips_overzicht,1)
for kk = 1:size(PQ.con,1)
    if PQ.con(kk,1)==dips_overzicht(k,2)
        
        dips_bussen_belasting(teller,:) = dips_overzicht(k,:);
        teller = teller+1;
        aantal_dips = aantal_dips +1;
    end
end
end

%zijn er ook onderbrekingen?

tijd_begin_onderbreking = 10; %testje -> nog aanpassen (zo goot want anders loopt lus vast;))
tijd_eind_onderbreking = 0;
restspanning = 1;
check_onderbreking = 0;
teller = 0;

%format: lijnfout bus_dip duur max_diepte begin eind
onderbreking_overzicht = ones(1000,7);
aantal_onderbrekingen = 0;
eind = 0;
cruciale_lijnen = zeros(20,1);
cruciaal = 1;

%laten lopen over alle lijnfouten
for kk = begin:einde    
check_cruciaal = 0;
%lopen over alle bussen 
for k = 1:14
eind = 0;
check_onderbreking = 0;
    
for t = 1:160 % grens op 160???? %size(tijd,1)
    
if (alle_spanningen(t+200*teller,k)<0.1) && (check_onderbreking == 0)
    
    if tijd(t,kk) == 0 && check_cruciaal == 0
        %lijst met lijnen die onoplosbaar netwerk veroorzaken als er een
        %fout op toegepast wordt
        cruciale_lijnen(cruciaal,1) = kk;
        check_cruciaal = 1;
        cruciaal = cruciaal + 1;
    else
    
    tijd_begin_onderbreking = tijd(t,kk);
    restspanning = alle_spanningen(t+200*teller,k);
    aantal_onderbrekingen = aantal_onderbrekingen + 1;
    onderbreking_overzicht(aantal_onderbrekingen,4) = restspanning;
    onderbreking_overzicht(aantal_onderbrekingen,5) = tijd_begin_onderbreking;
    onderbreking_overzicht(aantal_onderbrekingen,1) = kk;
    onderbreking_overzicht(aantal_onderbrekingen,2) = k;
    check_onderbreking = 1;
    end
end

if (check_onderbreking == 1) && (alle_spanningen(t+200*teller,k)>=0.1) && (eind == 0)
    
     tijd_eind_onderbreking = tijd(t,kk);
     onderbreking_overzicht(aantal_onderbrekingen,6) = tijd_eind_onderbreking;
     onderbreking_overzicht(aantal_onderbrekingen,3) = onderbreking_overzicht(aantal_onderbrekingen,6)-onderbreking_overzicht(aantal_onderbrekingen,5);    
     eind = 1;
     
end

    if check_onderbreking == 1
    if onderbreking_overzicht(aantal_onderbrekingen,3) == 0
         onderbreking_overzicht(aantal_onderbrekingen,3) = 200-onderbreking_overzicht(aantal_onderbrekingen,5);
    end
    end
end
end
    teller = teller + 1;
end


IEEE_14_bus_original;
%hangt er een belasting aan de bus met onderbreking?
onderbreking_bussen_belasting = zeros(1000,7);
aantal_onderbrekingen = 0;
teller = 1;
for k=1:size(onderbreking_overzicht,1)
for kk = 1:size(PQ.con,1)
    if PQ.con(kk,1)==onderbreking_overzicht(k,2)
        
        onderbreking_bussen_belasting(teller,:) = onderbreking_overzicht(k,:);
        aantal_onderbrekingen = aantal_onderbrekingen +1;
        teller = teller+1;
    end
end
end


%gevoelige bussen is een array met de bussen in die "crashen" bij een
%bepaalde fout, weergegeven in kolom 1
teller = 1;
gevoelige_bussen = 0;
for k=1:aantal_dips
    if dips_bussen_belasting(k,6) == 0
        gevoelige_bussen(teller,1:2) = dips_bussen_belasting(k,1:2);
        teller = teller + 1;
    end
    
    
end

%gecrashte bussen: een fout op een bepaalde bus laat het netwerk
%platvallen. (=gevoelige_bussen2)
teller = 0;
teller2 = 1;
temp = 1;
gevoelige_bussen2 = 0;
for k=1:einde_interval
    temp2 = 0;
for t=10:160
    
    if alle_spanningen(t+200*teller,:) == 0
        temp = temp+1;
    end
    
    if temp == 10 && temp2 ==0
        gevoelige_bussen2(teller2,1) = k;%(alle_spanningen_busfout(t+200*teller,k);
        teller2 = teller2+1;
        temp2 = 1;
    end
    
end
teller = teller + 1;
end

save lijnfout aantal_dips dips_bussen_belasting onderbreking_bussen_belasting aantal_onderbrekingen aantal_bussen gevoelige_bussen gevoelige_bussen2 cruciale_lijnen -append

% %dips en onderbrekingen bepalen ten gevolge van busfouten
% %clear all;
% load busfout;
% 
% tijd_begin_dip = 10; %testje -> nog aanpassen (zo goot want anders loopt lus vast;))
% tijd_eind_dip = 0;
% diepte_dip = 1;
% %k=1;
% check_dip = 0;
% teller = 0;
% 
% %format: lijnfout bus_dip duur max_diepte begin eind 
% dips_busfout = zeros(1000,7);
% aantal_dips_busfout = 0;
% eind = 0;
% 
% %laten lopen over alle (bus)fouten
% for kk = 1:einde_interval2
% 
% %lopen over alle bussen (tot 14 want laatste bus is de extra bus en veroorzaakt de fout dus
% %dip nutteloos om op te slaan)
% for k = 1:14
% eind = 0;
% check_dip = 0;
%     
% for t = 1:160 % grens op 160???? %size(tijd,1)
%     
% if (alle_spanningen_busfout(t+200*teller,k)<0.9) && (alle_spanningen_busfout(t+200*teller,k)>0.1) && (check_dip == 0)
%     
%     tijd_begin_dip = tijd(t,kk);
%     t1 = t;
%     %diepte_dip = alle_spanningen_busfout(t+200*teller,k);
%     aantal_dips_busfout = aantal_dips_busfout + 1;
%     %dips_busfout(aantal_dips_busfout,4) = diepte_dip;
%     dips_busfout(aantal_dips_busfout,5) = tijd_begin_dip;
%     dips_busfout(aantal_dips_busfout,1) = kk;
%     dips_busfout(aantal_dips_busfout,2) = k;
%     check_dip = 1;
%     
% end
% 
% if (check_dip == 1) && (alle_spanningen_busfout(t+200*teller,k)>=0.9) && (eind == 0)
%     
%      tijd_eind_dip = tijd(t,kk);
%      dips_busfout(aantal_dips_busfout,6) = tijd_eind_dip;
%      dips_busfout(aantal_dips_busfout,3) = dips_busfout(aantal_dips_busfout,6)-dips_busfout(aantal_dips_busfout,5);
%      eind = 1;
% 
% end
% if eind == 1
%     diepte_dip = min(alle_spanningen_busfout(t1+200*teller:t+200*teller,k));
%     dips_busfout(aantal_dips_busfout,4) = diepte_dip;
% end
% 
% end
% 
% %%%%%%%%%%
% %TIJDELIJK
% %%%%%%%%%%
% 
% %als de spanning niet terug hersteld kan worden krijgt de dipduur de waarde
% %1234. Hierop kan Bjorn zoeken. (1234 is een waarde die nooit bekomen
% %wordt vermits er 20 sec gesimuleerd wordt...)
% if check_dip == 1 && eind == 0
%     dips_busfout(aantal_dips_busfout,3) = 1234;
%     
% end
% 
% %%%%%%%%%%%
% 
% end
%     teller = teller + 1;
% end
% 
% IEEE_14_bus_original;
% aantal_bussen = size(Bus.con,1);
% %hangt er een belasting aan de bus met dip?
% dips_busfout_belasting = zeros(1000,7);
% aantal_dips_busfout = 0;
% teller = 1;
% for k=1:size(dips_busfout,1)
% for kk = 1:size(PQ.con,1)
%     if PQ.con(kk,1)==dips_busfout(k,2)
%         
%         dips_busfout_belasting(teller,:) = dips_busfout(k,:);
%         teller = teller+1;
%         aantal_dips_busfout = aantal_dips_busfout +1;
%     end
% end
% end
% 
% 
% %gevoelige bussen is een array met de bussen in die "crashen" bij een
% %bepaalde fout, weergegeven in kolom 1
% teller = 1;
% for k=1:aantal_dips_busfout
%     if dips_busfout_belasting(k,6) == 0
%         gevoelige_bussen(teller,1:2) = dips_busfout_belasting(k,1:2);
%         teller = teller + 1;
%     end
%     
%     
% end
% 
% %gecrashte bussen: een fout op een bepaalde bus laat het netwerk
% %platvallen. (=gevoelige_bussen2)
% teller = 0;
% teller2 = 1;
% temp = 1;
% for k=1:einde_interval2
%     temp2 = 0;
% for t=10:160
%     
%     if alle_spanningen_busfout(t+200*teller,:) == 0
%         temp = temp+1;
%     end
%     
%     if temp == 10 && temp2 ==0
%         gevoelige_bussen2(teller2,1) = k;%(alle_spanningen_busfout(t+200*teller,k);
%         teller2 = teller2+1;
%         temp2 = 1;
%     end
%     
% end
% teller = teller + 1;
% end
% 
% %onderbrekingen
% onderbreking;
% onderbreking_busfout_belasting = onderbreking_bussen_belasting;
% aantal_dips = aantal_dips_busfout;
% dips_bussen_belasting = dips_busfout_belasting;
% 
% save busfout aantal_dips dips_bussen_belasting onderbreking_bussen_belasting aantal_onderbrekingen aantal_bussen cruciale_bussen -append;
% 

